package com.stone.design.mode.state;

/**
 * 停止状态
 *
 * @author Mr_wenpan@163.com 2022/01/13 22:42
 */
public class StoppingState extends LiftState {

    /**
     * 停止状态下的开门动作
     */
    @Override
    public void open() {
        super.context.setLiftState(Context.OPENING_STATE);
        super.context.open();
    }

    /**
     * 电梯停止状态下，本来就是关闭的
     */
    @Override
    public void close() {
        // do nothing
    }

    /**
     * 电梯停止后再运行起来，很正常
     */
    @Override
    public void run() {
        super.context.setLiftState(Context.RUNNING_STATE);
        super.context.run();
    }

    /**
     * 停止状态是怎么发生的呢？当然就是停止方法执行了
     */
    @Override
    public void stop() {
        System.out.println("电梯停止了....");
    }
}
